package com.eastfair.messagecenter.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperCacheService;
import com.eastfair.boot.service.SuperService;
import com.eastfair.database.mybatis.conditions.query.QueryWrap;
import com.eastfair.messagecenter.dto.MsgDTO;
import com.eastfair.messagecenter.entity.Msg;
import com.eastfair.messagecenter.point.ReadySendPoint;
import com.eastfair.messagecenter.vo.MsgVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 消息表
 * </p>
 *
 * @author ligang
 * @date 2022-09-08
 */
public interface MsgService extends SuperCacheService<Msg> {


    /**
     * 批量添加
     * @param msgList
     * @return
     */
    boolean addBatch(List<Msg> msgList);

    /**
     * do转vo
     *
     * @param model
     */
    MsgVO doToVo(Msg model);

    /**
     * do转vo
     *
     * @param modelList
     */
    List<MsgVO> doToVos(List<Msg> modelList);


    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<Msg> list(MsgDTO modelDTO, List<Long> ids);

    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<Msg> listOfCache(MsgDTO modelDTO, List<Long> ids);

    /**
     * 分页查询
     * @param params
     * @return
     */
    IPage<MsgVO> pageVo(PageParams<MsgDTO> params);

    QueryWrap<Msg> assembleQueryWrapper(MsgDTO msgDTO, List<Long> ids);

    /**
     * 预发送
     * @param readySendPoint
     */
    void readySend(ReadySendPoint readySendPoint);


}
